package com.example.tool.bean.wcaiexcel;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AddSmartSheetFieldsRequest {
    private String docid;
    private String sheet_id;
    private List<AddField>fields=new ArrayList<>();


    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class AddField {
        private String field_title;
        private String field_type;
//       private NumberFieldProperty property_number;
//        private CheckboxFieldProperty property_checkbox;
//        private DateTimeFieldProperty property_date_time;
//        private AttachmentFieldProperty property_attachment;
//        private UserFieldProperty property_user;
//        private UrlFieldProperty property_url;
//        private SelectFieldProperty property_select;
//        private CreatedTimeFieldProperty property_created_time;
//        private ModifiedTimeFieldProperty property_modified_time;
//        private ProgressFieldProperty property_progress;
//        private SingleSelectFieldProperty property_single_select;
//        private ReferenceFieldProperty property_reference;
//        private LocationFieldProperty property_location;
//        private AutoNumberFieldProperty property_auto_number;
//        private CurrencyFieldProperty property_currency;
//        private WwGroupFieldProperty property_ww_group;
//        private PercentageFieldProperty property_percentage;
//        private BarcodeFieldProperty property_barcode;
//
//        public AddField(String field_type, String field_title) {
//            this.field_type = field_type;
//            this.field_title = field_title;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class NumberFieldProperty {
//            private int decimal_places;
//            private boolean use_separate;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class CheckboxFieldProperty {
//            private boolean checked;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class DateTimeFieldProperty {
//            private String format;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class AttachmentFieldProperty {
//            private String display_mode;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class UserFieldProperty {
//            private String is_multiple;
//            private String is_notified;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class UrlFieldProperty {
//            private String type;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class SelectFieldProperty {
//            private Boolean is_quick_add;
//            private List<Option> options;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class CreatedTimeFieldProperty {
//            private String format;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class ModifiedTimeFieldProperty {
//            private String format;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class ProgressFieldProperty {
//            private int decimal_places;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class SingleSelectFieldProperty {
//            private boolean is_quick_add;
//            private List<Option> options;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class ReferenceFieldProperty {
//            private String sub_id;
//            private String filed_id;
//            private boolean is_multiple;
//            private String view_id;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class LocationFieldProperty {
//            private String input_type;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class AutoNumberFieldProperty {
//            private String type;
//            private List<NumberRule> rules;
//            private boolean reformat_existing_record;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class CurrencyFieldProperty {
//            private String currency_type;
//            private int decimal_places;
//            private boolean use_separate;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class WwGroupFieldProperty {
//            private boolean allow_multiple;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class PercentageFieldProperty {
//            private int decimal_places;
//            private boolean use_separate;
//
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class BarcodeFieldProperty {
//            private boolean mobile_scan_only;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class Option {
//            private String id;
//            private String text;
//            private Integer style;
//        }
//
//        @Data
//        @NoArgsConstructor
//        @AllArgsConstructor
//        public static class NumberRule {
//            private String type;
//            private String value;
//        }
//    }
//        /**
//         * // 创建文本字段
//         * AddField textField = new AddField();
//         * textField.setField_title("产品名称");
//         * textField.setField_type(FieldType.TEXT);
//         *
//         * // 创建数字字段
//         * AddField numberField = new AddField();
//         * numberField.setField_title("价格");
//         * numberField.setField_type(FieldType.NUMBER);
//         *
//         * NumberFieldProperty numberProp = new NumberFieldProperty();
//         * numberProp.setDecimal_places(2);
//         * numberProp.setUse_separate(true);
//         * numberField.setProperty_number(numberProp);
//         *
//         * // 创建日期字段
//         * AddField dateField = new AddField();
//         * dateField.setField_title("发布日期");
//         * dateField.setField_type(FieldType.DATE_TIME);
//         *
//         * DateTimeFieldProperty dateProp = new DateTimeFieldProperty();
//         * dateProp.setFormat("yyyy-MM-dd");
//         * dateProp.setAuto_fill(true);
//         * dateField.setProperty_date_time(dateProp);
//         *
//         * // 创建单选字段
//         * AddField singleSelectField = new AddField();
//         * singleSelectField.setField_title("产品状态");
//         * singleSelectField.setField_type(FieldType.SINGLE_SELECT);
//         *
//         * SingleSelectFieldProperty selectProp = new SingleSelectFieldProperty();
//         * selectProp.setIs_quick_add(true);
//         *
//         * Option option1 = new Option();
//         * option1.setText("在售");
//         * option1.setId("1");
//         *
//         * Option option2 = new Option();
//         * option2.setText("缺货");
//         * option2.setId("2");
//         *
//         * selectProp.setOptions(Arrays.asList(option1, option2));
//         * singleSelectField.setProperty_single_select(selectProp);
//         */
//        /**
//         * 创建文本字段
//         */
//    public static AddField createTextField(String title) {
//        AddField field = new AddField();
//        field.setField_title(title);
//        field.setField_type(WeChatFieldType.FIELD_TYPE_TEXT.getCode());
//        return field;
//    }
//
//    /**
//     * 创建数字字段
//     * @param title
//     * @param decimalPlaces
//     * @param useSeparator
//     * @return
//     */
//
//    public static AddField createNumberField(String title, int decimalPlaces, boolean useSeparator) {
//        AddField field = new AddField();
//        field.setField_title(title);
//        field.setField_type(WeChatFieldType.FIELD_TYPE_NUMBER.getCode());
//        AddField.NumberFieldProperty property = new AddField.NumberFieldProperty();
//        property.setDecimal_places(decimalPlaces);
//        property.setUse_separate(useSeparator);
//        field.setProperty_number(property);
//        return field;
//    }
//
//    /**
//     * 创建复选框字段
//     * @param title
//     * @param checkedByDefault
//     * @return
//     */
//
//    public static AddField createCheckboxField(String title, boolean checkedByDefault) {
//        AddField field = new AddField();
//        field.setField_title(title);
//        field.setField_type(WeChatFieldType.FIELD_TYPE_CHECKBOX.getCode());
//        AddField.CheckboxFieldProperty property = new AddField.CheckboxFieldProperty();
//        property.setChecked(checkedByDefault);
//        field.setProperty_checkbox(property);
//        return field;
//    }
//
//    /**
//     * 创建复选框字段
//     * @param title
//     * @param format
//     * @return
//     */
//
//    public static AddField createDateTimeField(String title,String format) {
//        AddField field = new AddField();
//        field.setField_title(title);
//        field.setField_type(WeChatFieldType.FIELD_TYPE_DATE_TIME.getCode());
//        AddField.DateTimeFieldProperty property = new AddField.DateTimeFieldProperty();
//        property.setFormat(format);
//        field.setProperty_date_time(property);
//        return field;
//    }
//
//    /**
//     *
//     * @param title
//     * @return
//     */
//    public static AddField createDateTimeField(String title) {
//        AddField field = new AddField();
//        field.setField_title(title);
//        field.setField_type(WeChatFieldType.FIELD_TYPE_DATE_TIME.getCode());
//        AddField.DateTimeFieldProperty property = new AddField.DateTimeFieldProperty();
//        property.setFormat(DateUtil.FORMAT_YEAR_MONTH_DAY);
//        field.setProperty_date_time(property);
//        return field;
//    }

//    public static AddField createAddField(String title,String fieldType) {
//        AddField addField = new AddField();
//        switch (fieldType){
//            case "FIELD_TYPE_DATE_TIME":
//                addField=createDateTimeField(title,fieldType);
//                break;
//            case "FIELD_TYPE_NUMBER":break;
//                addField=createNumberField(title,2,true);
//            case "FIELD_TYPE_TEXT":
//            default: break;
//        }
//        AddField field = new AddField();
//        field.setField_title(title);
//        field.setField_type(WeChatFieldType.FIELD_TYPE_DATE_TIME.getCode());
//        AddField.DateTimeFieldProperty property = new AddField.DateTimeFieldProperty();
//        property.setFormat(DateUtil.FORMAT_YEAR_MONTH_DAY);
//        field.setProperty_date_time(property);
//        return field;
//    }
    }
}
